/*
 * $Id$
 *
 * Copyright ( c ) 2014 XuNuo Corporation. All Rights Reserved.
 *
 * This software is the confidential and proprietary information of XuNuo
 * Corporation ("Confidential Information").  You shall not disclose such
 * Confidential Information and shall use it only in accordance with the terms
 * of the license agreement you entered into with XuNuo Corporation or a XuNuo
 * authorized reseller (the "License Agreement"). XuNuo may make changes to the
 * Confidential Information from time to time. Such Confidential Information may
 * contain errors.
 *
 * EXCEPT AS EXPLICITLY SET FORTH IN THE LICENSE AGREEMENT, XuNuo DISCLAIMS ALL
 * WARRANTIES, COVENANTS, REPRESENTATIONS, INDEMNITIES, AND GUARANTEES WITH
 * RESPECT TO SOFTWARE AND DOCUMENTATION, WHETHER EXPRESS OR IMPLIED, WRITTEN OR
 * ORAL, STATUTORY OR OTHERWISE INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS FOR A
 * PARTICULAR PURPOSE. XuNuo DOES NOT WARRANT THAT END USER'S USE OF THE
 * SOFTWARE WILL BE UNINTERRUPTED, ERROR FREE OR SECURE.
 *
 * XuNuo SHALL NOT BE LIABLE TO END USER, OR ANY OTHER PERSON, CORPORATION OR
 * ENTITY FOR INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL
 * DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE, DATA OR USE, WHETHER IN AN
 * ACTION IN CONTRACT, TORT OR OTHERWISE, EVEN IF XuNuo HAS BEEN ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGES. XuNuo' TOTAL LIABILITY TO END USER SHALL NOT
 * EXCEED THE AMOUNTS PAID FOR THE XuNuo SOFTWARE BY END USER DURING THE PRIOR
 * TWELVE (12) MONTHS FROM THE DATE IN WHICH THE CLAIM AROSE.  BECAUSE SOME
 * STATES OR JURISDICTIONS DO NOT ALLOW LIMITATION OR EXCLUSION OF CONSEQUENTIAL
 * OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO END USER.
 *
 * Copyright version 2.0
 */
package com.th.supcom.pds.medicare.api;

import java.util.List;
import java.util.Map;

import com.th.supcom.pds.domain.vo.InpPhamApplyDetailVO;
import com.th.supcom.pds.domain.vo.InpPhamDispenseDetailVO;
import com.th.supcom.pds.domain.vo.PdsSupplyDetailVO;
import com.th.supcom.pds.domain.vo.PdsSupplyResultSet;

/**
 * 调用DMS药品管理系统外部接口服务
 * 
 * @author 杨冲
 */
public interface AdapterDrugManagerService
{
    /**
     * 住院 药房退药入库
     * 
     * @param InpPhamApplyDetailVOs
     * @param infoMap
     * @param phamIoSortCode 退药方式
     * @return
     */
    public String inpDrugStockIn (List <InpPhamApplyDetailVO> inpPhamApplyDetailVOs, Map <String, Object> infoMap, String phamIoSortCode);

    /**
     * 调用DMS系统的药品出库
     * 
     */
    public void drugStockOut (List <PdsSupplyDetailVO> prescDetailCombines, Map <String, Object> map);

    /**
     * 调用DMS系统的药品入库(用于门诊退药)
     * 
     */
    public String outpDrugStockIn (PdsSupplyResultSet pdsSupplyResultSet);

    /**
     * 更新医嘱状态接口。传入参数：医嘱ID，处方号，医嘱状态；返回参数：无。
     * 
     * @param prescDetailCombines
     */
    public void sendStockOutInfo (List <PdsSupplyDetailVO> prescDetailCombines);

    /**
     * 住院摆药库存操作
     * 
     * @param detailList
     * @return
     */
    public List <InpPhamDispenseDetailVO> phamApplyStockOp (List <InpPhamDispenseDetailVO> detailList);

    /**
     * 药品冲抵时，更新DMS缓存信息
     * 
     * @param applyDetailList
     */
    public void offsetDetailStockOp (List <InpPhamApplyDetailVO> applyDetailList);

    /** 提交路径. */
    public static final String SCC_BRANCH = "$URL$";

    /** 提交日期. */
    public static final String SCC_LAST_MODIFICATION_DATE = "$Date$";

    /** 最终修改人员. */
    public static final String SCC_LAST_MODIFIER_NAME = "$Author$";

    /** 最终版本号. */
    public static final String SCC_REVISION = "$Revision$";
}
